Stoff des Curriculums Elementare Programmierung
Wiederholungsfragen
Ein Klick auf den roten Hyperlink zeigt die richtige Lösung.
Gegeben sei das folgende Unterprogramm. Es zeichne ein Quadrat der Seitenlänge 100 an der angegebenen Position.
Sub QuadratFesterLänge(X As Integer, Y As Integer) ... einige Anweisungen End Sub
Welche der folgenden Programme melden einen Laufzeitfehler? (mehrere Antworten möglich)
Dim X As Integer
Dim Y As Integer
X = 100
Y = 200
QuadratFesterLänge X, Y Antwort Dim X As Integer
Dim Y As Integer
X = 100
Y = 200
QuadratFesterLänge 100, 200 Antwort Dim A As Integer
Dim B As Integer
A = 100
B = 200
QuadratFesterLänge X, Y Antwort Dim A As Integer
Dim B As Integer
A = 100
B = 200
QuadratFesterLänge A, B Antwort Dim X As String
Dim Y As String
X = 100
Y = 200
QuadratFesterLänge X, Y Antwort Dim X As String
Dim Y As String
X = "100"
Y = "200"
QuadratFesterLänge Y, X AntwortWelchen Datentyp wählen Sie, wenn Sie Variablen für folgende Daten bereitstellen müssen?
Hinweis: Überlegen Sie sich, welche Wertbereiche und welche Operationen Sie benötigen.
Der Mod-Operator gibt den Rest bei einer Ganzzahldivision zurück (z.B.: 7 / 2 = 3 Rest 1. Also ist 7 Mod 2 = 1). Gegeben sei eine Funktion, die prüft ob eine Ganzzahl gerade ist:
Function istGerade(Zahl As Integer) As Boolean
Zahl = Zahl Mod 2
If Zahl = 0 Then
istGerade = True
Else
istGerade = False
End If
End Function
Welchen Wert hat die Variable t nach Ausführung des folgenden Programms?
Dim t As Integer t = 128 If istGerade(t) Then t = t + 1 End If
Erklären Sie Funktion und Wirkung der folgenden Begriffe:
|
|
Wie oft wird die folgende Schleife durchlaufen?
Dim t As Integer t = 128 Do While t > 2 t = t / 2 Loop
Gegeben sei das folgende Datenfeld:
Private Personen(1 To 5) As String
Ein Programm fülle in die Variable Personen die fünf Namen ["Carmen", "David", "Anna", "Elisabeth", "Beat"]. Danach führt es die folgende Schleife aus, wobei i ein Integer und temp ein String sind.
For i = 1 To 4
If Personen(i) > Personen(i + 1) Then
temp = Personen(i)
Personen(i) = Personen(i + 1)
Personen(i + 1) = temp
End If
Next
In welcher Reihenfolge befinden sich die Namen nach Ausführung des Programms im Datenfeld?
Wie oft muss man die Schleife in Aufgabe 6. im ungünstigsten Fall ausführen, damit ein beliebiges Datenfeld mit 5 Elementen danach sortiert ist?
Geben Sie ein Beispiel für einen ungünstigsten Fall.
Vertiefungsfragen
Die Turtle-Grafik ist ein bekanntes Feature der Programmiersprache Logo. Logo wurde entwickelt, um Kinder spielerisch in das Programmierens einzuführen. Die Turtle-Grafik wurde später in die Sprachen wie Turbo Pascal aufgenommen. Diese Aufgabe verwendet die Turtle-Grafik, um die grundlegenden Sprachelemente von VBA zu repetieren.
Der erste Teil der Einführung in die Programmentwicklung hat im Beispiel QuadratProgrammiert.xls das Zeichnen von Linien unter einem Koordinatensystem vorgestellt. Die Turtle-Grafik kommt ohne Koordinatensystem aus. Gezeichnet wird, indem einer 'Schildkröte' (engl. turtle) Anweisungen gegeben werden, sich vorwärts zu bewegen oder sich an ihrer aktuellen Position nach links oder rechts zu drehen.
Die Arbeitsmappe TurtleSkelett.xls enthält ein Arbeitsblatt als Benutzerschnittstelle, ein Modul 'Turtle', das einige Befehle der Turtle-Grafik implementiert und ein Modul 'Prozeduren' mit den Prozedurköpfen für die Aufgaben.
Der kleine blaue Punkt auf dem Arbeitsblatt ist der Startpunkt der Schildkröte, unmittelbar nachdem die Schaltfläche 'Lösche' geklickt wurde. Er kann zuvor mit der Maus beliebig positioniert werden. Die Anfangsrichtung der Schildkröte ist Norden.
Das Modul 'Turtle' implementiert folgende Prozeduren:
Die obige Grafik wurde beispielsweise durch folgende Anweisungen gezeichnet:
Start geheVorwärts 40 dreheRechts 30 geheVorwärts 70 dreheLinks 110 geheVorwärts 20
Laden Sie die Arbeitsmappe TurtleSkelett.xls und lösen Sie die folgenden Aufgaben in den bereitgestellten Prozedurskeletten des Moduls 'Prozeduren'.
| Hinweis: | Sie brauchen den Programmcode im Modul 'Turtle' nicht anzuschauen. |
Implementieren Sie in der Prozedur Nikolaus_Klick eine Sequenz von Anweisungen, welche "das Haus vom Nikolaus" zeichnet. Eine Skizze mit Längen- und Winkelangaben zeigt das nächste Bild.
Implementieren Sie in der Prozedur Pentagramm_Klick ein Programm, welches das im folgenden Bild gezeigte Pentagramm zeichnet. Verwenden Sie eine Schleife.
Implementieren Sie in der Prozedur Spirale_Klick ein Programm, das die im folgenden Bild gezeigte Spirale zeichnet. Jede Linie ist 0.8 Mal so lang wie die vorhergehende. Die letzte Linie soll etwa vier Schritte lang sein. Verwenden Sie eine Schleife.
Implementieren Sie in der Prozedur Sparrenfenster_Klick ein Programm, welches das im nächsten Bild gezeigte Sparrenfenster zeichnet. Implementieren Sie zunächst ein Unterprogramm, das ein Quadrat zeichnet. Als Argument soll ihm die Kantenlänge übergeben werden können. Verwenden Sie das Unterprogramm zum Zeichnen des Sparrenfensters.
Die Schildkröte hat Hunger. Der grosse grüne Punkt neben der 'suche Salat'-Schaltfläche stellt einen Salat dar. Sie können den Punkt mit der Maus beliebig auf dem Arbeitsblatt platzieren. Die Schildkröte soll diesen Salat nun selbständig finden. Das Modul Turtle stellt hierfür vier weitere Funktionen zur Verfügung.
Die grauen Bereiche im letzten Bild veranschaulichen, welche Funktion wann True zurück gibt. Was 'vorne', 'links' und 'rechts' bedeutet, hängt von der aktuellen Richtung der Schildkröte ab.
Überlegen Sie sich eine Suchstrategie und implementieren Sie diese.